const fs = require("fs");
const path = require("path");
const user = require("../sql/user");
module.exports = function(){
  return (req,res,next)=>{
    // 如果有文件被上传，在req身上会增加一个files属性，内含上传的文件信息：req.files

    // 上传的文件信息概要：
    // fieldname: 'avatar',
    // originalname: 'avatar1.jpg',
    // encoding: '7bit',
    // mimetype: 'image/jpeg',
    // destination: './upload',
    // filename: '5b12ec1fd9124963600c60268b658b79',
    // path: 'upload/5b12ec1fd9124963600c60268b658b79',
    // size: 16021
    
    // 上传之后的文件，缺少扩展名和有效标志
    // 对上传之后的文件改名
    // 从文件的概要信息中拼出老名字：
    const oldName = path.join(__dirname, "..", "upload", req.files[0].filename);
    // 从文件的概要信息中拼出新名字：
    const newName = oldName + "-" + req.files[0].originalname;
    // 使用fs模块，改名
    fs.renameSync(oldName, newName);
    // 拼接出前端能够使用的文件地址
    // http://localhost:3000/797a8209c2b6cbf2b21319bc58caf6bf-avatar1.jpg
    const serverName = "http://localhost:3000/" + req.files[0].filename + "-" + req.files[0].originalname
    // 存储到数据的对应用户信息中
    user.updateOne({
      userId: req.userMsg.userId
    }, {
      avatar: serverName
    }).then(()=>{
      // 并将该地址，响应给前端，以供前端使用
      res.send( {state:0, msg:"头像修改成功", url:serverName} );
    }).catch(()=>{
      res.send( {state:1, msg:"头像修改失败"} );
    })
  }
}